import commonjs from "@rollup/plugin-commonjs" // 使用commonjs
import resolve from "@rollup/plugin-node-resolve" // 加载第三方库
import babel from "@rollup/plugin-babel" // 转成es5
import { terser } from "rollup-plugin-terser" // 压缩代码
import postcss from 'rollup-plugin-postcss';
import vue from 'rollup-plugin-vue' // 处理vue的插件
import replace from 'rollup-plugin-replace' // 注入环境变量
import serve from 'rollup-plugin-serve' // 启动服务
import livereload from 'rollup-plugin-livereload' // 实时刷新
const isProduction = process.env.NODE_ENV === 'production';
const plugins = [
  commonjs(),
  resolve(),
  replace({
    'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV)
  }),
  babel({
    babelHelpers: "bundled", // 多次使用辅助函数只保留一个  比如 class 在转换成es5时会使用多个辅助函数则只保留一个
  }),
  postcss(),
  vue(),
]
if (isProduction) {
  plugins.push(terser())
} else {
  const devPlugins = [
    serve({
      // open: true, // 是否打开浏览器
      port: 8080, // 监听哪一个端口
      contentBase: "." // 服务哪一个文件夹
    }),
    livereload()
  ]
  plugins.push(...devPlugins);
}
export default {
  input: "./src/main.js",
  output: {
    format: "umd", // 格式
    name: "whyUtils",
    file: "dist/why.umd.js",
    globals: {
      lodash: "_", // 全局变量 就是 global._ 
    },
  },
  external: ["lodash"],
  plugins,
}